LGF_ActDeactDevice stellt eine kompakte State Maschine zur Aktivierung und Überwachung bzw. Deaktivierung eines dezentralen IO-Gerätes bereit.
| LGF_ActDeactDevice (FB) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Bool | deactivate | done | Bool | |||||
| Bool | activate | busy | Bool | |||||
| HW_DEVICE | hwId | error | Bool | |||||
| LGF_typeActDeactDeviceParameter | parameter | status | Word | |||||
| deactivatingActive | Bool | |||||||
| deactivatingDone | Bool | |||||||
| activatingActive | Bool | |||||||
| activatingDone | Bool | |||||||
| diagnostics | LGF_typeDiagnostics | |||||||
| Bezeichner | Datentyp | Default Wert | Beschreibung |
|---|---|---|---|
| deactivate | Bool | FALSE | Steigende Flanke: Deaktivieren des Gerätes angegeben `hwId` |
| activate | Bool | FALSE | Steigende Flanke: Aktivieren des Gerätes angegeben `hwId` |
| hwId | HW_DEVICE | --- | Hardware-ID des Geräts, das aktiviert/deaktiviert werden soll (`Device~PnIf~IODevice`) |
| parameter | LGF_typeActDeactDeviceParameter | --- | Parameterdatensatz für die Funktion `LGF_ActDeactDevice` |
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| done | Bool | TRUE: FB-Abarbeitung erfolgreich fertiggestellt |
| busy | Bool | TRUE: FB ist aktive und neue Ausgabewerte können erwartet werden. |
| error | Bool | Während der Ausführung des FB ist ein Fehler aufgetreten |
| status | Word | 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
| deactivatingActive | Bool | TRUE: Deaktivierung des Gerätes aktiv |
| deactivatingDone | Bool | TRUE: Gerät deaktiviert |
| activatingActive | Bool | TRUE: Aktivierung des Geräts aktiv |
| activatingDone | Bool | TRUE: Gerät aktiviert |
| diagnostics | LGF_typeDiagnostics | Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle. |
| Code / Wert | Bezeichner / Beschreibung |
|---|---|
| 16#0000 | STATUS_DEACTIVATION_DONE Geräte Deaktivierung erfolgreich beendet |
| 16#0001 | STATUS_ACTIVATION_DONE Geräte Aktivierung erfolgreich beendet |
| 16#7000 | STATUS_NO_CALL Kein Auftrag wird gerade bearbeitet |
| 16#7040 | STATUS_DEACTIVATION Deaktivierung des Geräts |
| 16#7060 | STATUS_ACTIVATION Aktivierung des Geräts |
| 16#8600 | ERR_UNDEFINED_STATE Fehler: Aufgrund eines undefinierten Zustands im Zustandsautomaten |
| 16#8601 | ERR_LOG2GEO Fehler: Log2Geo, möglicherweise ist die HW ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8602 | ERR_GEO2LOG Fehler: Geo2Log, möglicherweise ist die HW-ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8640 | ERR_DEVICE_DEACTIVATING Fehler: Deaktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8641 | ERR_DEVICE_DEACTIVATING_TIME_OUT Fehler: Deaktivierung des Gerätes - Watchdog-Timer abgelaufen |
| 16#8642 | ERR_DEVICE_DEACTIVATING_RETRIES_REACHED Fehler: Deaktivierung des Geräts - Wiederholungszähler maximum erreicht |
| 16#8650 | ERR_READ_ACTIVATION_STATE_WHILE_DEACTIVATED Fehler: Deaktivierungsstatus (D_ACT_DP) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0002`, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8660 | ERR_DEVICE_ACTIVATING Fehler: Aktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8661 | ERR_DEVICE_ACTIVATING_TIME_OUT Fehler: Aktivierung des Geräts - Watchdog-Timer abgelaufen. Kann an einer unterbrochenen Geräteverbindung liegen. |
| 16#8662 | ERR_DEVICE_ACTIVATING_RETRIES_REACHED Fehler: Aktivierung des Geräts - Wiederholungszähler maximum erreicht. Kann an einer unterbrochenen Geräteverbindung liegen. |
| 16#8663 | ERR_READ_DEVICES_STATES_DURING_ACTIVATION Fehler: Read Device States (`DeviceStates`) während der Aktivierung des Gerätes, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8670 | ERR_READ_DEVICES_STATES_WHILE_ACTIVE Fehler: Read Device States (`DeviceStates`) während das Gerät aktiv ist, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8671 | ERR_DEVICE_STATE_WHILE_ACTIVE Fehler: Gerät meldet vorliegenden Fehler und ist unerreichbar, fehlerhaftes Gerät oder IO-System |
| 16#8672 | ERR_READ_ACTIVATION_STATE_WHILE_ACTIVE Fehler: Aktivierungsstatus (`D_ACT_DP`) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0001`, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8690 | ERR_DISABLING_DEACT_DEVICE Fehler: Deaktivierung `D_ACT_DP` des Geräts führt zu einem Fehler bei der Deaktivierung, siehe `diagnostics.subFunctionStatus` für weitere Informationen |
| 16#8691 | ERR_DISABLING_WATCHDOG Fehler: Watchdog-Timer beim Deaktivieren abgelaufen |
Dieser UDT gehört zum Modul LGF_ActDeactDevice und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf.
| Bezeichner | Datentyp | Default Wert | Beschreibung |
|---|---|---|---|
| activationRetries | SInt | 100 | Anzahl der Wiederholungen der Aktivierung & Deaktivierung, bis einen Fehler anzeigt wird |
| timeOutActDeact | Time | T#5S | Die Zeit für die Überwachung der Befehle `activate` und `deactivate` sollte größer sein als die in der Hardwarekonfiguration der SPS im Abschnitt `Startup` eingestellte `Parametrierungszeit`. |
Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.
| Bezeichner | Datentyp | Default Wert | Beschreibung |
|---|---|---|---|
| status | Word | 16#0000 | Status des Bausteins oder Fehleridentifikation beim Auftreten des Fehlers |
| subfunctionStatus | Word | 16#0000 | Status oder Rückgabewert von aufgerufenen FB's, FC's und Systembausteinen |
| stateNumber | DInt | 0 | Zustand in der Zustandsmaschine des Blocks, in dem der Fehler aufgetreten ist |
Das Modul stellt den Ablauf zum Aktivieren und Deaktivieren eines dezentralen IO-Gerätes im Profinet (PN, S7-1500 & S7-1200) sowie im Profibus (DP, S7-1500) Netzwerk zur Verfügung.
Das Aktivieren des Gerätes (definiert an hwId) wird durch eine steigende Flanke an activate eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang isActivated angezeigt.
Dezentrale Peripherie angezeigt, wenn sie mit dem Engineering System online sind.Das Deaktivieren des Gerätes (definiert an hwId) wird durch eine steigende Flanke an deactivate eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang isDeactivated angezeigt.
timeOutActDeact zur Überwachung der Aktivierungs- und Deaktivierungssequenz sollte immer größer eingestellt werden als der Parametrierte Wert in der Gerätekonfiguration / Anlauf / Parametrierungszeit.
| Version & Datum | Änderungsbeschreibung | |
|---|---|---|
| 1.0.0 | Simatic Systems Support | |
| 06.04.2024 | First released version in different project | |
| 2.0.0 | Simatic Systems Support | |
| 10.03.2025 | Refactoring & Improve Code for LGF Integration Thats why we start here with V2.0 for the LGF integration Copy of `LGF_ActDeactMonitorDevice` without device monitoring, just executing activation and deactivation | |